﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace hissql
{
    public partial class DocEnter : Form
    {
        public DocEnter()
        {
            InitializeComponent();
        }

        private void bt_enter_Click(object sender, EventArgs e)
        {
           /*if (this.tb_no.Text.Trim ()=="")                                                      //若用户号文本框为空；
            {
                MessageBox.Show("用户号不能为空！");                                                    //给出错误提示；
                this.tb_no.Focus();                                                                //用户号文本框获得焦点；
                return;                                                                                 //返回；
            }
            if (this.tb_password.Text .Trim ()=="")                                                    //若密码文本框为空；
            {
                MessageBox.Show("密码不能为空！");                                                      //给出错误提示；
                this.tb_password.Focus();                                                              //密码文本框获得焦点；
                return;                                                                                 //返回；
            }
                                                    //声明并实例化SQL连接；
            /* sqlConnection.ConnectionString =
                 "Server=(local);Database=hissql;Integrated Security=sspi";    */
            //在字符串变量中，描述连接字符串所需的服务器地址、数据库名称、集成安全性（即是否使用Windows验证）；
            /*sqlCommand.CommandText =                                                        //指定SQL命令的命令文本；命令文本由字符串拼接而成；
                "SELECT COUNT(1) FROM tb_User"
                + " WHERE No='" + this.txb_UserNo.Text.Trim() + "'"                         //将文本框的文本清除首尾的空格后，拼接至命令文本中；
                + " AND Password=HASHBYTES('MD5','" + this.txb_Password.Text.Trim() + "');";*/
           /*string connString = @"Server=(local);Database=hissql;Integrated Security=sspi";
            using (SqlConnection sqlConnection = new SqlConnection(connString))
            {
                sqlConnection.Open();

            }
            string sqlStr = string.Format("select count(*) from [tb_Doctor] where No='{0}'and Password='{1}'",tb_no.Text .Trim (),tb_password=HASHBYTES('MD5','" + this.txb_Password.Text.Trim()");
            using (SqlConnection conn=new SqlConnection (connString ))
            {
                SqlCommand cmd = new SqlCommand(sqlStr ,conn );
                conn.Open();
                int n = Convert.ToInt32(cmd .ExecuteScalar());
                if (n == 1)
                {
                    MessageBox.Show("登录成功！");
                }
                else
                {
                    MessageBox.Show("用户名或密码错误，请重新输入！","错误");
                    tb_no.Text  = "";
                    tb_password .Text= "";
                    tb_no.Focus();
                }*/

            SqlConnection sqlConnection = new SqlConnection();                              //声明并实例化SQL连接；
            sqlConnection.ConnectionString =
                "Server=(local);Database=hissql;Integrated Security=sspi";             //在字符串变量中，描述连接字符串所需的服务器地址、数据库名称、集成安全性（即是否使用Windows验证）；
            SqlCommand sqlCommand = new SqlCommand();                                       //声明并实例化SQL命令；
            sqlCommand.Connection = sqlConnection;                                          //将SQL命令的属性Connection指向SQL连接；
            sqlCommand.CommandText =                                                        //指定SQL命令的命令文本；命令文本由字符串拼接而成；
                "SELECT COUNT(1) FROM tb_Doctor"
                + " WHERE No='" + this.tb_no.Text .Trim ()+ "'"                         //将文本框的文本清除首尾的空格后，拼接至命令文本中；
                + " AND Password=HASHBYTES('MD5','" + this .tb_password.Text .Trim () + "');";           
            sqlConnection.Open();                                                           //打开SQL连接；
            int rowCount = (int)sqlCommand.ExecuteScalar();                                 //调用SQL命令的方法ExecuteScalar来执行命令，并接受单个结果（即标量）；
                                                                                            //执行标量的返回结果类型为object，可通过强制类型转换，转为整型；
            sqlConnection.Close();                                                          //关闭SQL连接；
            if (rowCount == 1)                                                              //若查得所输用户号相应的1行记录；
            {
                MessageBox.Show("登录成功。");                                              //给出正确提示；
            }
            else                                                                            //否则；
            {
                MessageBox.Show("用户号/密码有误，请重新输入！");                           //给出错误提示；
                this.tb_password.Focus ();                                                  //密码文本框获得焦点；
                this.tb_password.SelectAll();                                              //密码文本框内所有文本被选中；
            }
                
            
        }

        private void bt_delete_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
